#include<stdio.h>
struct xs{
    double sb;
    double xb;
};
void cf(struct xs a,struct xs b){
    double sb=0;
      double xb=0;
    sb=a.sb*b.sb-a.xb*b.xb;
    xb=a.sb*b.xb+a.xb*b.sb;
    if(xb>0){printf("%.2lf+%.2lfi",sb,xb);}
    if(xb<0){printf("%.2lf%.2lfi",sb,xb);}
    if(xb==0){printf("%.2lf",sb);}
}
void jf(struct xs a,struct xs b){
    double sb=0;
    double xb=0;
    sb=a.sb+b.sb;
    xb=a.xb+b.xb;
    if(xb>0){printf("%.2lf+%.2lfi",sb,xb);}
    if(xb<0){printf("%.2lf%.2lfi",sb,xb);}
    if(xb==0){printf("%.2lf",sb);}
}
void jjf(struct xs a,struct xs b){
    double sb=0;
    double xb=0;
    sb=a.sb-b.sb;
    xb=a.xb-b.xb;
    if(xb>0){printf("%.2lf+%.2lfi",sb,xb);}
    if(xb<0){printf("%.2lf%.2lfi",sb,xb);}
    if(xb==0){printf("%.2lf",sb);}
}
int main(){
    double x1,x2;
    double y1,y2;
    scanf("%lf %lf %lf %lf",&x1,&y1,&x2,&y2);
    struct xs x;
    struct xs y;
    x.sb=x1;
    x.xb=y1;
    y.sb=x2;
    y.xb=y2;
    jf(x,y);
    // printf("%.2lf %.2lf ",y.sb,y.xb);
    printf("    ");
        jjf(x,y);
    printf("    ");
        cf(x,y);
    return 0;
}
